// 创建一个 ArrayBuffer 对象
const buffer = new ArrayBuffer(16);

// 创建一个 DataView 对象，关联到上面的 ArrayBuffer
const dataView = new DataView(buffer);

// 向 ArrayBuffer 写入数据
dataView.setInt8(0, -128); // 在偏移量为 0 的位置写入一个 8 位有符号整数
// 默认情况下，DataView 使用小端序（Little Endian）来解释二进制数据。
// 在偏移量为 1 的位置写入一个 16 位有符号整数（使用 little-endian 格式）
dataView.setInt16(1, 1000);

// 从 ArrayBuffer 读取数据
const value1 = dataView.getInt8(0); // 从偏移量为 0 的位置读取一个 8 位有符号整数
const value2 = dataView.getInt16(1); // 从偏移量为 1 的位置读取一个 16 位有符号整数（使用 little-endian 格式）

console.log(value1); // 输出：-128
console.log(value2); // 输出：1000

// 大端序小端序
const buffer1 = new ArrayBuffer(4);
const dataView1 = new DataView(buffer1);

dataView1.setInt32(0, 12345678, false); // 使用大端序存储数据

const intValueLE = dataView1.getInt32(0, false); // 0x12345678，按小端序解释
console.log(intValueLE); // 输出：-128
